Handling of a communication session

ABSTRACT

Method, device and computer program product for handling a communication session at a device, by executing a communication session handling program at the device, the communication session handling program comprising a communication session handling part for handling the communication session and an interfacing part for linking with a communication session control interface. An application executed at the device provides, to a user of the device, a communication session control interface for the communication session handled by the communication session handling part of the communication session handling program, the application linking with the interfacing part of the communication session handling program. On detecting that the application has ceased to provide the communication session control interface, the interfacing part of the communication session handling program links, without dropping the communication session, to a further communication session control interface provided at the device for continuation of the communication session handled by the communication session handling part.

TECHNICAL FIELD

This invention relates to handling a communication session at a device.

BACKGROUND

Packet-based communication systems allow a user of a device, such as apersonal computer, to communicate across a computer network such as theInternet. Packet-based communication systems include voice over internetprotocol (“VoIP”) communication systems which can support calls, andother communication sessions, between users of the communicationsystems. These communication systems are beneficial to the user as theyare often of significantly lower cost than fixed line or mobilenetworks. This may particularly be the case for long-distancecommunication. To use a VoIP system, client software must be installedand executed on the device. The client software provides the VoIPconnections as well as other functions such as registration andauthentication. A user of a packet-based communication system canestablish calls with other users who are simultaneously logged in to thecommunication system.

Client software for VoIP communications can be provided by anapplication at a device, for example, client software may be provided inthe form of a plug-in program which can be executed within a hostapplication, such as a web browser at a device. The plug-in program canhandle VoIP calls and use the host application for displaying a callcontrol interface thereby allowing a user to set up and control VoIPcalls through the host application. The use of such a plug-in program ina web browser (or other host application) facilitates the set up, andcontrol, of VoIP calls for a user who is using the web browser. The useof a plug-in program is a particularly user friendly method forimplementing the client software at the device.

SUMMARY

According to a first aspect of the present invention there is provided amethod of handling a communication session at a device, the methodcomprising: executing a communication session handling program at thedevice, the communication session handling program comprising acommunication session handling part for handling the communicationsession and an interfacing part for linking with a communication sessioncontrol interface; executing an application at the device, theapplication providing, to a user of the device, a communication sessioncontrol interface for the communication session handled by thecommunication session handling part of the communication sessionhandling program, the application linking with the interfacing part ofthe communication session handling program; detecting that theapplication has ceased to provide the communication session controlinterface; and on detecting that the application has ceased to providethe communication session control interface, linking the interfacingpart of the communication session handling program, without dropping thecommunication session, to a further communication session controlinterface provided at the device for continuation of the communicationsession handled by the communication session handling part of thecommunication session handling program.

According to a second aspect of the present invention there is provideda device for handling a communication session, the device comprising:means for executing a communication session handling program at thedevice, the communication session handling program comprising acommunication session handling part for handling the communicationsession and an interfacing part for linking with a communication sessioncontrol interface; and means for executing an application at the device,the application providing, to a user of the device, a communicationsession control interface for the communication session handled by thecommunication session handling part of the communication sessionhandling program, the application linking with the interfacing part ofthe communication session handling program; means for detecting that theapplication has ceased to provide the communication session controlinterface, wherein on detecting that the application has ceased toprovide the communication session control interface, the interfacingpart of the call handling program links, without dropping the call, to afurther communication session control interface provided at the devicefor continuation of the communication session handled by thecommunication session handling part of the communication sessionhandling program.

According to a third aspect of the present invention there is provided acomputer program product comprising computer readable instructions forexecution by computer processing means at a device for handling acommunication session at the device, the instructions comprisinginstructions for: executing a communication session handling program atthe device, the communication session handling program comprising acommunication session handling part for handling the communicationsession and an interfacing part for linking with a communication sessioncontrol interface; and executing an application at the device, theapplication providing, to a user of the device, a communication sessioncontrol interface for the communication session handled by thecommunication session handling part of the communication sessionhandling program, the application linking with the interfacing part ofthe communication session handling program; detecting that theapplication has ceased to provide the communication session controlinterface; and on detecting that the application has ceased to providethe communication session control interface, linking the interfacingpart of the communication session handling program, without dropping thecommunication session, to a further communication session controlinterface provided at the device for continuation of the communicationsession handled by the communication session handling part of thecommunication session handling program.

The application may comprise a host application hosting a plug-inprogram. The plug-in program may provide the communication sessioncontrol interface, A further program, other than the plug-in program,may provide the further communication session control interface. Theapplication may link with the interfacing part of the communicationsession handling program by means of the plug-in program. The plug-inprogram may comprise a HyperText Markup Language tag. The communicationsession may comprise for example a voice call, a video call, a chatsession, a voice mail or a video mail.

The application may be a web browser. The application may cease toprovide the communication session control interface when the applicationis closed. Where the application is a web browser hosting a plug-inprogram, the web browser may host the plug-in program on a web page andthe web browser may cease to host the plug-in program when the usernavigates away from the web page, thereby ceasing to provide thecommunication session control interface.

Embodiments of the invention are particularly useful when a userunintentionally causes the application to cease to provide thecommunication session control interface, since the communication sessionis continued in a further communication session control interfacewithout dropping the communication session. For example, when theapplication is a web browser providing the communication session controlinterface in a web page (e.g. using a plug-in program) a user may closethe web page (e.g. by closing a tab) or navigate away from the web pagewithout meaning to end the communication session. If this happens thecommunication session can be continued using a further communicationsession control interface without dropping the communication session.

The inventors have realized that in prior art systems in which anapplication provides a control interface for a call (or other type ofcommunication session), when the application is closed (or ceases toprovide the control interface for some other reason) the call will bedropped. For example, where the application comprises a web browserhosting a plug-in program which handles VoIP calls, when the web browserceases to host the plug-in program any VoIP calls being handled by theplug-in program will be dropped. This drawback with the prior artsystems is overcome by providing the communication session handlingprogram described herein which can handle communication sessionsindependently of the application (e.g. the web browser). This allows theuser to navigate to another web page or to close the web browser withoutterminating a communication session being handled by the communicationsession handling program. This is achieved by providing thecommunication session handling program with an interfacing part whichcan link with the application to thereby provide the communicationsession control interface to the user.

Terminating the communication session control interface provided by theapplication does not prevent the communication session from continuingbecause the communication session handling program handles thecommunication session independently of the application. A furthercommunication session control interface is used for continuation of thecommunication session. Therefore where the application is a web browserthe user is free to navigate to another web page without dropping a calland video can be seamlessly output to a different window, which providesa further communication session control interface. The furthercommunication session control interface may be provided in a new windowthat is opened when the application ceases to provide the communicationsession control interface. Alternatively, the further communicationsession control interface may be provided in a program that is alreadybeing executed at the device when the host application ceases to providethe communication session control interface.

Where the application is a host application hosting a plug-in program,preferably the communication session handling program is separate to theplug-in program. The communication session handling program and theplug-in program are installed on the device. The communication sessionhandling program preferably handles the communication session set up andmay encode and decode data, or “media”, for use in the communicationsession. A plug-in program may be used to provide a communicationsession control interface for the communication session to the user andmay also display video in the case that the communication session is avideo call. In the event that a host application hosting the plug-inprogram is closed, the communication session is not dropped since thecommunication session is handled independently by the communicationsession handling program.

In a preferred embodiment of the invention the communication sessionhandling program is arranged to cause a new window to be opened if theapplication ceases to provide the communication session controlinterface, the new window being used to provide a further communicationsession control interface to the user for the communication session.

Different terminology for the programs referred to herein may be used inthe art. For example, the communication session handling program may bereferred to as a “runtime” and the plug-in program may be referred to asa “plug-in”, “plugin or “plug in”.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the present invention and to show how thesame may be put into effect, reference will now be made, by way ofexample, to the following drawings in which:

FIG. 1 is a schematic diagram of a communication system according to apreferred embodiment;

FIG. 2 is a schematic diagram of programs being executed in a deviceaccording to a preferred embodiment;

FIG. 3 is a representation of a user interface of a web browser hostinga plug-in program according to a preferred embodiment;

FIG. 4 shows a flowchart of a process for handling a call according to apreferred embodiment; and

FIG. 5 is a representation of a window that is opened when the webbrowser is closed according to a preferred embodiment.

DETAILED DESCRIPTION

In general the methods described herein can be applied to any type ofcommunication session, e.g. voice call, video call, chat session, voicemail or video mail. However, in the preferred embodiments described indetail below the communication session is a call. Reference is firstmade to FIG. 1, which illustrates a communication system 100. Note thatwhilst this illustrative embodiment is described with reference to a P2Pcommunication system, other types of communication system could also beused, such as non-P2P systems. The communication system 100 comprises adevice 102, which is connected to a network 104. The network 104 may befor example the Internet. The device 102 may be, for example, a mobilephone, a personal digital assistant (“PDA”), a personal computer (“PC”)(including, for example, Windows™, Mac OS™ and Linux™ PCs), a gamingdevice or other embedded device able to connect to the network 104. Thedevice 102 is arranged to receive information from and outputinformation to a user of the device 102. Note that in alternativeembodiments, the device 102 can connect to the communication network 104via additional intermediate networks not shown in FIG. 1. For example,if the device 102 is a mobile device, then it can connect to thecommunication network 104 via a cellular mobile network (not shown).

The device 102 comprises a central processing unit (“CPU”) 106, to whichis connected a display 118 such as a screen, input devices such as akeypad (or a keyboard) 114, a pointing device such as a joystick (notshown), a microphone 112 for the input of audio signals and a webcam 110for the input of video signals. The display 118 may comprise a touchscreen for inputting data to the CPU 106. An output audio device 120(e.g. a speaker) is connected to the CPU 106. The display 118, keypad114, joystick, speaker 120, microphone 112 and webcam 110 are integratedinto the device 102. In alternative devices one or more of the display118, the keypad 114, the joystick, the speaker 120, the microphone 112and the webcam 110 may not be integrated into the device and may beconnected to the CPU 106 via respective interfaces. One example of suchan interface is a USB interface. A pointing device such as a mouse (notshown) may be connected to the CPU 106 via an interface (not shown). TheCPU 106 is connected to a network interface 122 such as a modem forcommunication with the network 104. The network interface 122 may beintegrated into the device 102 as shown in FIG. 1. In alternativedevices the network interface 122 is not integrated into the device. Thedevice 102 comprises a memory 116 for storing data. The memory 116 isconfigured such that data can be transferred between the CPU 106 and thememory 116 as is known in the art.

FIG. 1 also illustrates an operating system (“OS”) 108 executed on theCPU 106. Computer programs can run on top of the operating system 108.In this way the CPU 106 can execute programs as is known in the art. Forexample client software can be executed by the CPU 106 thereby allowingthe device 102 to engage in communications over the communicationnetwork 104.

FIG. 2 is a representation of programs being executed by the CPU 106 ina preferred embodiment. A call handling program 202 is executed by theCPU 106. The call handling program 202 comprises a call handling part204 which handles calls made over the communication network 104. Thecall handling part 204 is responsible for handling call set up, encodingand decoding audio and video signals for use in the call, and forhandling other processes regarding the handling of the call, such aspresence information of users in the communications system 100. The callhandling program 202 also comprises an interfacing part 206 which is forlinking the call handling program 202 with a call control interface. Thecall handling program 202 does not have a call control interface forinterfacing with the user of the device 102, and so links to a callcontrol interface using the interfacing part 206. Since the interfacingpart 206 allows the call handling program 202 to link with anindependent call control interface, if for some reason the call controlinterface ceases to be executed at the device 102 then the interfacingpart 206 can link with a different call control interface and the callhandled by the call handling part 204 is not dropped. This means thatthe call (handled by the call handling part 204) can continue despite acall control interface ceasing to be executed at the device 102.

FIG. 2 also shows a host application 208 which is executed by the CPU106. The host application 208 hosts a plug-in program 210. The hostapplication 208 is a web browser in the preferred embodiments describedherein, but the host application could be a different applicationhosting the plug-in program 210. When the plug-in program 210 isexecuted in the host application 208 it provides, to the user of thedevice 102, a call control interface for the call handled by the callhandling part 204 of the call handling program 202. Although in thepreferred embodiment shown in FIG. 2 there is a host application 208hosting a plug-in program 210, in alternative embodiments an applicationwhich is not a host application hosting a plug-in program may be usedfor providing the communication session control interface.

As shown in FIG. 2 by the dashed line, the interfacing part 206 of thecall handling program 202 links with the plug-in program 210, such thatthe plug-in program 210 can provide the call control interface for thecall handling program 202.

FIG. 3 is a representation of a user interface 300 displayed to the userof the device 102 when the web browser 208 is executed hosting theplug-in program 210. The user interface 300 comprises a section 302which displays information relating to the web browser 208 itself. Theinformation displayed to the user in section 302 is not related to theplug-in program 210 and the call handling program 202. Different typesof information may be displayed in section 302 according to the type ofweb browser 208. Furthermore, for different web browsers, theinformation relating to the web browser 208 itself may be set outdifferently on the screen to that shown in the example user interface300 of FIG. 3. The user interface 300 has controls for navigating todifferent web pages in the web browser 208. For example, as is known inthe art, if the user clicks on the back button 304 then the web browser208 will navigate to the previously displayed web page and if the userclicks on the forward button 306 then the web browser 208 will navigateto the next web page to be displayed. The plug-in program 210 might notbe hosted on all web pages and so when the user navigates to a new webpage in the web browser 208 the web browser 208 might cease to host theplug-in program 210. The plug-in program 210 may be hosted on some webpages but not on other web pages of the web browser 208. If the userclicks on the close button 308 then the web browser 208 is closed. Thisresults in the web browser 208 ceasing to host the plug-in program 210.

The section 310 of the user interface 300 is used to display, to theuser, the call control interface provided by the plug-in program 210.The section 310 includes a video pane 312 for displaying the videocomponent of a video signal. Where a call being handled by the callhandling program 202 is a video call the video part of the video call isdisplayed in the video pane 312. The call handling program 202 decodes avideo signal received as part of the video call and provides the decodedvideo signal to the plug-in program 210 which then renders the videosignal and displays the video in the video pane 312. The section 310also includes controls 314 and buttons 316. The controls 314 and buttons316 can be used by the user to control the call being handled by thecall handling program 202, and in this sense the controls 314 andbuttons 316 constitute a call control interface for the call handlingprogram 202.

A method for handling a call according to a preferred embodiment willnow be described by way of example with reference to FIG. 4. In stepS402 the web page 208 (or other host application) is executed at thedevice 102. The web browser 208 hosts the plug-in program 210. A webpage rendered by the web browser includes a HyperText Markup Language(HTML) tag, or an Extensible HyperText Markup Language (XHTML) tag, thatinstantiates the plug-in program 210. The plug-in program 210 causes thecall handling program 202 to be executed at the device 102 if it is notalready being executed. It is noted that more than one web page mayinstantiate a separate plug-in program and each plug-in program isassigned a unique ID.

In step S404 the call handling program 202 is executed at the device102. The call handling program 202 may be caused to execute as a resultof the execution of the plug-in program 210 in the web browser 208 asdescribed above. Alternatively, the call handling program 202 may becaused to execute by means other than the execution of the web browser208, for example by the user of the device 102 selecting to execute thecall handling program 202. The call handling part 204 of the callhandling program 202 handles a call that is occurring between the device102 and another device over the network 104. The call handling program202 maintains a list of plug-in program IDs that are being executed atthe device 102. The call handling program 202 maintains a connectionwith each instance of a plug-in program being executed at the device 102using the interfacing part 206 of the call handling program 202. If ahost application ceases to host a particular plug-in program, (e.g. ifthe web browser 208 is closed, or the user navigates away from a webpage in which the plug-in program is instantiated) then the particularplug-in program ID is deleted from the list.

Following steps S402 and S404 the call handling program 202 can handle acall over the network 104 and the plug-in program 210 can provide thecall control interface to the user of the device 102 for controlling thecall. As described above the call handling part 204 of the call handlingprogram 202 handles call set up, and handles the encoding and decodingof audio and video data for use in the call. When the call is a videocall, the call handling part 204 provides decoded video data to theplug-in program 210 which renders the video data in the web page of theweb browser 208. The decoded audio signal is output from the callhandling program 202 directly to the speakers 120 of the device 102. Thecall handling program 202 is responsive to user interface (UI) callcontrol commands input via the plug-in program 210, such as commands tostart a call and to end a call over the network 104.

In step S406 the web browser 208 ceases to host the plug-in program 210.As described above, this may be, for example, because the user navigatesaway from the web page in which the plug-in program 210 is instantiatedor because the user closes the web browser 208. The interfacing part 206of the call handling program 202 detects that the web browser 208 hasceased to host the plug-in program 210. The link between the interfacingpart 206 of the call handling program 202 and the plug-in program 210 isbroken when the plug-in program 210 ceases to be hosted by the hostapplication 208. However, since the call handling program 202 isseparate from the plug-in program 210, the call handling program 202 cancontinue to handle the call. This means that the call is not dropped asa result of the host application 208 ceasing to host the plug-in program210. Indeed the call may remain active and the audio signal for the callmay continue to be output via the speakers 120. Audio data captured bythe microphone 112 and video data captured by the webcam 110 cancontinue to be transmitted to the far end of the call over the network104.

When the host application 208 ceases to host the plug-in program 210 instep S406, the call control interface provided by the plug-in program210 for the call being handled by the call handling program 202 stopsbeing displayed to the user of the device 102. However, in step S408 ondetecting that the host application 208 is no longer hosting the plug-inprogram 210 to thereby provide a call control interface, the interfacingpart 206 of the call handling program 202 links to a further programexecuting at the device which provides a further call control interfacefor the call handled by the call handling part 204 of the call handlingprogram 202. In some embodiments, instead of linking to a furtherprogram, the call handling program 202 links to a further instance ofthe same plug-in program 210 executing at the device 102.

The call handling program 202 determines whether a further suitableplug-in program is being executed at the device 102 for providing a callcontrol interface for the call. If a further instance of a plug-inprogram (e.g. a further plug-in program) is executing at the device 102,then the interfacing part 206 will link to that further plug-in program.In this way the further plug-in program can be used to provide a furthercall control interface for the call being handled by the call handlingprogram 202. In some embodiments the further program which provides thefurther communication session control interface is not a plug-in programhosted by a host application.

If no such suitable further plug-in program is executing at the device102 when the host application ceases to host the plug-in program 210then the call handling program is arranged to open a further program ina new window and to use that further program to provide a call controlinterface to the user for the call and where the call is a video call torender the received video data. The call handling program 202 can usethe list that it maintains of plug-in IDs to determine whether there areany suitable plug-in programs being executed at the device 102 for usein providing the further call control interface for the call handlingprogram 202. If the plug-in count in the list is zero when the hostapplication 208 ceases to host the plug-in program 210 then the callhandling program 202 opens the new window for the further program toprovide the further call control interface.

In some embodiments the call handling program 202 is arranged to open anew window for the further program without first determining whether afurther suitable plug-in program is being executed at the device 102.

FIG. 5 is a representation of a window 500 that is opened when the webbrowser 208 ceases to host the plug-in program 210 according to apreferred embodiment. The window 500 displays, to the user, a furthercall control interface provided by a further program for use by the userin controlling the call being handled by the call handling program 202.The window 500 includes a video pane 502 for displaying the videocomponent of a video signal. Where a call being handled by the callhandling program 202 is a video call the video part of the video call isdisplayed in the video pane 502. The window 500 also includes controls504, a text box 506 and buttons 508, which together constitute thefurther call control interface for the call handling program 202. Thecontrols 504 and buttons 508 can be used by the user to control the callbeing handled by the call handling program 202, and the text box 506 canbe used to display information to the user. The window 500 is a DesktopView window acting as a call control interface for the call handlingprogram 202.

The sequence of events in a preferred embodiment is as follows. The userof the device 102 closes the web browser 208 or navigates away from theweb page hosting the plug-in program 210. The link between the plug-inprogram 210 and the interfacing part 206 of the call handling program202 is dropped. If the plug-in program count in the list maintained atthe call handling program is zero, then the call handling program 202opens a desktop view window. The new desktop view window links with theinterfacing part 206 of the call handling program 202. The call controlinterface is then provided in the new desktop view window and where thecall is a video call the video is rendered in the new desktop viewwindow.

There has been described above a method of handling a call in which thecall control interface is provided by a plug-in program 210 hosted by ahost application 208. The plug-in program 210 links to the interfacingpart 206 of the call handling program 202 which handles calls over thecommunication network 104. Providing the call control interface with aplug-in program has the advantage of facilitating use of the callhandling program 202 for a user who is using the host application 208.Since the call handling program 202 handles the call independently ofthe host application 208, if the host application 208 ceases to host theplug-in program 210, the call is not dropped. A further program isexecuted at the device 102 to provide a further call control interfacefor the call which continues after the plug-in program 210 ceases to behosted by the host application 208. This is possible because theinterfacing part 206 of the call handling program 202 allows the callhandling program 202 to link to different programs (or differentinstances of the same program) which can provide call control interfacesfor the call handling program 202. The separation of the call controlinterface from the call handling program 202 allows the user to closethe web browser hosting the plug-in program, or navigate away from theweb page on which the plug-in program is hosted, whilst maintaining thecall that is being handled by the call handling program 202.

While this invention has been particularly shown and described withreference to preferred embodiments, it will be understood to thoseskilled in the art that various changes in form and detail may be madewithout departing from the scope of the invention as defined by theappendant claims.

What is claimed is:
 1. A method of handling a communication session at a device, the method comprising: executing a communication session handling program at the device, the communication session handling program comprising a communication session handling part for handling the communication session and an interfacing part for linking with a communication session control interface; executing an application at the device, the application providing, to a user of the device, a communication session control interface for the communication session handled by the communication session handling part of the communication session handling program, the application linking with the interfacing part of the communication session handling program; detecting that the application has ceased to provide the communication session control interface; and on detecting that the application has ceased to provide the communication session control interface, linking the interfacing part of the communication session handling program, without dropping the communication session, to a further communication session control interface provided at the device for continuation of the communication session handled by the communication session handling part of the communication session handling program.
 2. The method of claim 1 wherein the application comprises a host application hosting a plug-in program.
 3. The method of claim 2 wherein the plug-in program provides the communication session control interface.
 4. The method of claim 3 wherein a further program provides the further communication session control interface.
 5. The method of claim 2 wherein the application links with the interfacing part of the communication session handling program by means of the plug-in program.
 6. The method of claim 2 wherein the plug-in program comprises a HyperText Markup Language tag.
 7. The method of claim 1 wherein the application is a web browser.
 8. The method of claim 7 wherein the web browser provides the communication session control interface on a web page and the web browser ceases to provide the communication session control interface when the user navigates away from the web page.
 9. The method of claim 1 wherein the application ceases to provide the communication session control interface when the application is closed.
 10. The method of claim 1 further comprising opening a new window on detecting that the application has ceased to provide the communication session control interface, the further communication session control interface being provided in the new window.
 11. The method of claim 1 further comprising on detecting that the application has ceased to provide the communication session control interface, determining whether a further program for providing a communication session control interface is being executed at the device, wherein if it is determined that a further program for providing the communication session control interface is being executed at the device the method further comprises using the further program to provide the further communication session control interface for the communication session handled by the communication session handling part of the communication session handling program.
 12. The method of claim 11 wherein a plurality of said further programs for providing a communication session control interface are capable of execution at the device and the method further comprises the communication session handling program maintaining a list of identifiers identifying which of the further programs are currently executing at the device, wherein the step of determining whether a further program is being executed at the device comprises determining whether an identifier identifying the further program is present in the list.
 13. The method of claim 1 wherein the communication session comprises a voice call, a video call, a chat session, a voice mail or a video mail.
 14. The method of claim 13 wherein the communication session is a video call and the method further comprises the application rendering the video call.
 15. The method of claim 1 wherein the communication session handling part of the communication session handling program handles communication session set up.
 16. The method of claim 1 wherein the communication session handling part of the communication session handling program encodes and decodes data for use in the communication session.
 17. The method of claim 1 wherein the communication session uses Voice over Internet Protocol.
 18. A device for handling a communication session, the device comprising: means for executing a communication session handling program at the device, the communication session handling program comprising a communication session handling part for handling the communication session and an interfacing part for linking with a communication session control interface; and means for executing an application at the device, the application providing, to a user of the device, a communication session control interface for the communication session handled by the communication session handling part of the communication session handling program, the application linking with the interfacing part of the communication session handling program; means for detecting that the application has ceased to provide the communication session control interface, wherein on detecting that the application has ceased to provide the communication session control interface, the interfacing part of the call handling program links, without dropping the call, to a further communication session control interface provided at the device for continuation of the communication session handled by the communication session handling part of the communication session handling program.
 19. A computer program product comprising computer readable instructions embodied on a computer readable storage memory at a device for handling a communication session at the device, the instructions comprising instructions for: executing a communication session handling program at the device, the communication session handling program comprising a communication session handling part for handling the communication session and an interfacing part for linking with a communication session control interface; and executing an application at the device, the application providing, to a user of the device, a communication session control interface for the communication session handled by the communication session handling part of the communication session handling program, the application linking with the interfacing part of the communication session handling program; detecting that the application has ceased to provide the communication session control interface; and on detecting that the application has ceased to provide the communication session control interface, linking the interfacing part of the communication session handling program, without dropping the communication session, to a further communication session control interface provided at the device for continuation of the communication session handled by the communication session handling part of the communication session handling program. 